Če na začetek programa napišemo
import time
bomo, med drugim, dobili funkcijo time
, ki s klicem time.time()
vrne čas v sekundah
od nekega trenutka v davni preteklosti.
Kako hitro razmišljamo
Napiši program, ki uporabnika vpraša, koliko je a
krat b
. pri tem sta a
inb
dve naključni
enomestni naravni števili. Uporabnik bo premislil in vpisal odgovor.
Program naj izpiše, koliko sekund je človek potreboval za razmišljanje, ter, če je odgovor pravilen.
Namig: če veš, koliko je bila ura pred klicem funkcije input in koliko je bila ura po klicu,
znaš izračunati, koliko časa je minilo vmes.
>>>Koliko je 6 x 7: 42
Čestitam! Odgovor je pravilen. Za odgovor si potreboval 2.503019332885742 s.
import time import random a = random.randint(1, 9) b = random.randint(1, 9) začetek = time.time() odg = int(input('Koliko je ' + str(a) + ' x ' + str(b) + ': ')) konec = time.time() if odg == a * b: print('Čestitam! Odgovor je pravilen.', end = " ") else: print('Žal narobe! Prav je ' + str(a*b) + '!', end = " ") print('Za odgovor si potreboval', konec - začetek, 's')
Misleči stroj I
Oglej si, kaj počne naslednji program:
import time
a = int(input('Prvo število: '))
b = int(input('Drugo število: '))
print('Računam ...')
time.sleep(3)
print('Uf, je bilo težko. V 3 sek so se moji čipi pošteno ogreli. Rezultat je:', a*b)
nato ga spremeni tako, da bo računalnik razmišljal med 1 in 5 sekundami! Pri tem lahko čaka tudi npr. 4.371232 sekunde ali pa točno 5! Oglej si dokumentacijo in poišči ustrezno funkcijo. Čas razmišljanja izpiši zaokroženo na tisočinke!
import time import random a = int(input('Prvo število: ')) b = int(input('Drugo število: ')) print('Računam ...') časČakanja = random.uniform(1, 5) time.sleep(časČakanja) print('Uf, je bilo težko. V', round(časČakanja,3), 'sek so se moji čipi pošteno ogreli. Rezultat je:', a*b)
Misleči stroj II
Večji kot je produkt, težji je račun. Računalnik naj zato čaka toliko sekund, kolikor je velik produkt, deljeno z 10. Če mu damo množiti 6 in 7, naj pred izpisom počaka 4.2 sekunde. Če je katero od števil negativno, naj vedno čaka 2 sekundi več, kot bi čakal pri pozitivnih številih. V nobenem primeru pa čas čakanja ne sme biti več kot 10 sekund.
Izpis naj bo tak, kot ga predvideva zgornji program!
import time a = int(input('Prvo število: ')) b = int(input('Drugo število: ')) print('Računam ...') časČakanja = abs(a * b) / 10 if a < 0 or b < 0: # za negativna števila časČakanja = časČakanja + 2 if časČakanja > 10: časČakanja = 10 time.sleep(časČakanja) print('Uf, je bilo težko. V', časČakanja, 'sek so se moji čipi pošteno ogreli. Rezultat je:', a*b)
Okulist Tone želi svojim strankam poslati program za kontrolo vida. Napiši mu program, ki bo izpisal med 10 in 20 znakov *, ločenih s presledki. Uporabnik jih mora prešteti in vnesti odgovor. Na podlagi odgovora naj program izpiše, ali mora uporabnik k okulistu Tonetu ali ne.
>>>* * * * * * * * * *
Koliko * vidite: 11
Prosim, zglasite se pri okulistu Tonetu.
>>>* * * * * * * * * * * * *
Koliko * vidite: 13
Vaš vid je še dober.
import random koliko = random.randint(10, 20) vzorec = '* ' * koliko print(vzorec) odg = int(input('Koliko * vidite: ')) if odg == koliko: print('Vaš vid je še dober.') else: print('Prosim, zglasite se pri okulistu Tonetu.')